﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace mrp16062010.Data
{
    class Kaydedici
    {

        public Kaydedici(Calistir gelen)
        {
            simulasyonEntities db = new simulasyonEntities();
            Calisma calisma = new Calisma();
            calisma.CalismaNo = gelen.CalismaNo;
            calisma.IsEmriAraligi = gelen.secilenIsEmriAraligi.Days;
            calisma.SiralamaKurali = (int)gelen.secilenKuyrukTipi;
            calisma.UrunAgaciTipi = gelen.secilenUrunAgaci.Id;
            db.AddToCalisma(calisma);
            db.SaveChanges();
            int calismaId = calisma.Id;
            int siparisno = 0;
            foreach (mrp16062010.Siparis sip in gelen.siparisList)
            {
                siparisno++;
                Siparis siparis = new Siparis();
                siparis.Adet = sip.Adet;
                siparis.CalismaId = calismaId;
                siparis.CizBasTarihi = sip.PlanlamaTarihleri.BaslangicTarihi.Sql();
                siparis.CizBitTarihi = sip.PlanlamaTarihleri.BitisTarihi.Sql();
                siparis.GelisTarihi = sip.TarihBilgisi.BaslangicTarihi.Sql();
                siparis.SonTarih = sip.TarihBilgisi.BitisTarihi.Sql();
                siparis.SimBasTarihi = sip.SimilasyonTarihleri.BaslangicTarihi.Sql();
                siparis.SimBitTarihi = sip.SimilasyonTarihleri.BitisTarihi.Sql();
                siparis.SiparisNo = siparisno;
                db.AddToSiparis(siparis);
                db.SaveChanges();
                int siparisId = siparis.Id;
                foreach (mrp16062010.IsParcasi parca in sip.IsParcalari)
                {
                    IsParcasi p = new IsParcasi();
                    p.ArkasindakiParcaSayisi = parca.ArkasindakiIsParcalari.Count;
                    p.CalismaId = calismaId;

                    p.CizelgeBaslangic = parca.BasTarihi.Sql();
                    p.CizelgeBitis = parca.BitTarihi.Sql();
                    p.IslemGiris = parca.SimulasyonBilgisi.IslemeTarihi.BaslangicTarihi.Sql();
                    p.IslemCikis = parca.SimulasyonBilgisi.IslemeTarihi.BitisTarihi.Sql();
                    p.KuyrukGiris = parca.SimulasyonBilgisi.GirisBeklemeTarihi.BaslangicTarihi.Sql();
                    p.KuyrukCikis = parca.SimulasyonBilgisi.GirisBeklemeTarihi.BitisTarihi.Sql();
                    p.MakineNo = parca.IM.Kod;
                    p.SiparisId = siparisId;
                    p.Uzunluk = parca.Uzunluk.Minutes;
                    db.AddToIsParcasi(p);
                    db.SaveChanges();
                    parca.Id = p.Id;
                }
            }
            foreach (Simulation.Makine mak in gelen.OrtamSimilasyon.MakineList)
            {
                Makine m = new Makine();
                m.Ad = mak.Kod.ToString();
                m.CalismaId = calismaId;
                //m.K=mak.Kod
                m.CalismaSuresi = mak.CalismaSuresi.Minutes;
                db.AddToMakine(m);
                db.SaveChanges();
            }
            foreach (Simulation.KuyrukOrtalama ort in gelen.OrtamSimilasyon.Ortalamalar)
            {
                Kuyruk k = new Kuyruk();
                k.Adet = ort.OrtalamaAdet;
                k.CalismaId = calismaId;
                k.Tarih = ort.Tarih.Sql();
                k.Uzunluk = ort.OrtalamaUzunluk.Minutes;
                db.AddToKuyruk(k);
                db.SaveChanges();
            }
        }
    }
}